
package com.cctv.esb.schema.taskdatatypes._0;

import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlType;
import com.cctv.cdm.schema.bclistandchangeinfotype._0.BroadcastListAndChangeInfoType;
import com.cctv.cdm.schema.directsendnotificationtype._1.DirectSendNotificationType;
import com.cctv.cdm.schema.ldirectsendnotificationtype._1.LDirectSendNotificationType;
import com.cctv.cdm.schema.liveprogramnotificationtype._1.LiveProgramNotificationType;
import com.cctv.cdm.schema.lliveprogramnotificationnewtype._1.LLiveProgramNotificationNewType;
import com.cctv.cdm.schema.lliveprogramnotificationtype._1.LLiveProgramNotificationType;
import com.cctv.esb.schema.commoncomplextype._0.ExtendAttributeType;
import com.cctv.ppm.schema.progplaystatus._0.ProgPlayStatusType;


/**
 * 任务特定信息类型
 * 
 * <p>TaskSpecificInfoType complex type的 Java 类。
 * 
 * <p>以下模式片段指定包含在此类中的预期内容。
 * 
 * <pre>
 * &lt;complexType name="TaskSpecificInfoType"&gt;
 *   &lt;complexContent&gt;
 *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *       &lt;sequence&gt;
 *         &lt;element name="ObjectEntity"&gt;
 *           &lt;complexType&gt;
 *             &lt;complexContent&gt;
 *               &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
 *                 &lt;sequence&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/BCListAndChangeInfoType/0.1}BroadcastListAndChangeInfoRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/LiveProgramNotificationType/1.0}LiveProgramNotificationRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/LDirectSendNotificationType/1.0}LDirectSendNotificationRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/LLiveProgramNotificationType/1.0}LLiveProgramNotificationRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/DirectSendNotificationType/1.0}DirectSendNotificationRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/CDM/schema/LLiveProgramNotificationNewType/1.0}LLiveProgramNotificationNewRequest" minOccurs="0"/&gt;
 *                   &lt;element ref="{http://cctv.com/PPM/schema/ProgPlayStatus/0.1}ProgPlayStatus" minOccurs="0"/&gt;
 *                 &lt;/sequence&gt;
 *               &lt;/restriction&gt;
 *             &lt;/complexContent&gt;
 *           &lt;/complexType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="ObjectType"&gt;
 *           &lt;simpleType&gt;
 *             &lt;restriction base="{http://www.w3.org/2001/XMLSchema}string"&gt;
 *               &lt;enumeration value="MaterialReversationList"/&gt;
 *               &lt;enumeration value="MaterialBasic"/&gt;
 *               &lt;enumeration value="MaterialManagementInfo"/&gt;
 *               &lt;enumeration value="MaterialCensorResult"/&gt;
 *               &lt;enumeration value="BreakAdvertisingTimeslotList"/&gt;
 *               &lt;enumeration value="AdvertisingProgramBroadcastScheduleList"/&gt;
 *               &lt;enumeration value="MaterialForbiddenInfo"/&gt;
 *               &lt;enumeration value="ProgramPlayApply"/&gt;
 *               &lt;enumeration value="BroadcastListInfo"/&gt;
 *               &lt;enumeration value="BroadcastListChangeInfo"/&gt;
 *               &lt;enumeration value="ReplayCheckTask"/&gt;
 *               &lt;enumeration value="LiveProgramNotification"/&gt;
 *               &lt;enumeration value="LLiveProgramNotification"/&gt;
 *               &lt;enumeration value="LDirectSendNotification"/&gt;
 *               &lt;enumeration value="DirectSendNotification"/&gt;
 *               &lt;enumeration value="LLiveProgramNotificationNew"/&gt;
 *               &lt;enumeration value="NewsProdTaskInfo"/&gt;
 *               &lt;enumeration value="BookingOrderReq"/&gt;
 *               &lt;enumeration value="AudioWorkOrder"/&gt;
 *               &lt;enumeration value="RecordingWorkOrder"/&gt;
 *               &lt;enumeration value="NoNewsExchangeWorkOrder"/&gt;
 *               &lt;enumeration value="StudioWorkOrder"/&gt;
 *               &lt;enumeration value="TRM_WorkOrderList"/&gt;
 *               &lt;enumeration value="ProgAllocatedResult"/&gt;
 *               &lt;enumeration value="LineOrderInfo"/&gt;
 *               &lt;enumeration value="StockConfirmationInfo"/&gt;
 *               &lt;enumeration value="AcquisitionProgramBasicInfo"/&gt;
 *               &lt;enumeration value="PurProgBasicInfo"/&gt;
 *               &lt;enumeration value="ReservationReceiptForwardList"/&gt;
 *               &lt;enumeration value="ProgPlayStatus"/&gt;
 *               &lt;enumeration value="PurchaseID_ForCensorAccepted"/&gt;
 *               &lt;enumeration value="AcquisitionTopic"/&gt;
 *               &lt;enumeration value="BusinessType"/&gt;
 *               &lt;enumeration value="PurchaseID_ForCensorUnaccepted"/&gt;
 *               &lt;enumeration value="MediaDataTransferNotice"/&gt;
 *               &lt;enumeration value="AccountBasicSynNotify"/&gt;
 *               &lt;enumeration value="BidbondPayment"/&gt;
 *               &lt;enumeration value="BidbondRelease"/&gt;
 *               &lt;enumeration value="BidbondForfeited"/&gt;
 *               &lt;enumeration value="RegistrationPayment"/&gt;
 *               &lt;enumeration value="RegistrationMarginRelease"/&gt;
 *               &lt;enumeration value="RemoteSysKeyPayment"/&gt;
 *               &lt;enumeration value="MarginAgreementPayment"/&gt;
 *               &lt;enumeration value="MarginAgreementRelease"/&gt;
 *               &lt;enumeration value="OrderBasicSynNotify"/&gt;
 *               &lt;enumeration value="AssetBasicSynNotify"/&gt;
 *               &lt;enumeration value="OrderPaymentReceive"/&gt;
 *               &lt;enumeration value="OrderExceptionPlayPayment"/&gt;
 *               &lt;enumeration value="OrderRelease"/&gt;
 *               &lt;enumeration value="CCTVPlayListSend"/&gt;
 *               &lt;enumeration value="CCTVExceptionPlayList"/&gt;
 *               &lt;enumeration value="RegistrationMarginTransfer"/&gt;
 *             &lt;/restriction&gt;
 *           &lt;/simpleType&gt;
 *         &lt;/element&gt;
 *         &lt;element name="ExtendAttribute" type="{http://cctv.com/ESB/schema/CommonComplexType/0.1}ExtendAttributeType" maxOccurs="unbounded" minOccurs="0"/&gt;
 *       &lt;/sequence&gt;
 *     &lt;/restriction&gt;
 *   &lt;/complexContent&gt;
 * &lt;/complexType&gt;
 * </pre>
 * 
 * 
 */
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "TaskSpecificInfoType", propOrder = {
    "objectEntity",
    "objectType",
    "extendAttribute"
})
public class TaskSpecificInfoType {

    @XmlElement(name = "ObjectEntity", required = true)
    protected TaskSpecificInfoType.ObjectEntity objectEntity;
    @XmlElement(name = "ObjectType", required = true)
    protected String objectType;
    @XmlElement(name = "ExtendAttribute")
    protected List<ExtendAttributeType> extendAttribute;

    /**
     * 获取objectEntity属性的值。
     * 
     * @return
     *     possible object is
     *     {@link TaskSpecificInfoType.ObjectEntity }
     *     
     */
    public TaskSpecificInfoType.ObjectEntity getObjectEntity() {
        return objectEntity;
    }

    /**
     * 设置objectEntity属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link TaskSpecificInfoType.ObjectEntity }
     *     
     */
    public void setObjectEntity(TaskSpecificInfoType.ObjectEntity value) {
        this.objectEntity = value;
    }

    /**
     * 获取objectType属性的值。
     * 
     * @return
     *     possible object is
     *     {@link String }
     *     
     */
    public String getObjectType() {
        return objectType;
    }

    /**
     * 设置objectType属性的值。
     * 
     * @param value
     *     allowed object is
     *     {@link String }
     *     
     */
    public void setObjectType(String value) {
        this.objectType = value;
    }

    /**
     * Gets the value of the extendAttribute property.
     * 
     * <p>
     * This accessor method returns a reference to the live list,
     * not a snapshot. Therefore any modification you make to the
     * returned list will be present inside the JAXB object.
     * This is why there is not a <CODE>set</CODE> method for the extendAttribute property.
     * 
     * <p>
     * For example, to add a new item, do as follows:
     * <pre>
     *    getExtendAttribute().add(newItem);
     * </pre>
     * 
     * 
     * <p>
     * Objects of the following type(s) are allowed in the list
     * {@link ExtendAttributeType }
     * 
     * 
     */
    public List<ExtendAttributeType> getExtendAttribute() {
        if (extendAttribute == null) {
            extendAttribute = new ArrayList<ExtendAttributeType>();
        }
        return this.extendAttribute;
    }


    /**
     * <p>anonymous complex type的 Java 类。
     * 
     * <p>以下模式片段指定包含在此类中的预期内容。
     * 
     * <pre>
     * &lt;complexType&gt;
     *   &lt;complexContent&gt;
     *     &lt;restriction base="{http://www.w3.org/2001/XMLSchema}anyType"&gt;
     *       &lt;sequence&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/BCListAndChangeInfoType/0.1}BroadcastListAndChangeInfoRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/LiveProgramNotificationType/1.0}LiveProgramNotificationRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/LDirectSendNotificationType/1.0}LDirectSendNotificationRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/LLiveProgramNotificationType/1.0}LLiveProgramNotificationRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/DirectSendNotificationType/1.0}DirectSendNotificationRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/CDM/schema/LLiveProgramNotificationNewType/1.0}LLiveProgramNotificationNewRequest" minOccurs="0"/&gt;
     *         &lt;element ref="{http://cctv.com/PPM/schema/ProgPlayStatus/0.1}ProgPlayStatus" minOccurs="0"/&gt;
     *       &lt;/sequence&gt;
     *     &lt;/restriction&gt;
     *   &lt;/complexContent&gt;
     * &lt;/complexType&gt;
     * </pre>
     * 
     * 
     */
    @XmlAccessorType(XmlAccessType.FIELD)
    @XmlType(name = "", propOrder = {
        "broadcastListAndChangeInfoRequest",
        "liveProgramNotificationRequest",
        "lDirectSendNotificationRequest",
        "lLiveProgramNotificationRequest",
        "directSendNotificationRequest",
        "lLiveProgramNotificationNewRequest",
        "progPlayStatus"
    })
    public static class ObjectEntity {

        @XmlElement(name = "BroadcastListAndChangeInfoRequest", namespace = "http://cctv.com/CDM/schema/BCListAndChangeInfoType/0.1")
        protected BroadcastListAndChangeInfoType broadcastListAndChangeInfoRequest;
        @XmlElement(name = "LiveProgramNotificationRequest", namespace = "http://cctv.com/CDM/schema/LiveProgramNotificationType/1.0")
        protected LiveProgramNotificationType liveProgramNotificationRequest;
        @XmlElement(name = "LDirectSendNotificationRequest", namespace = "http://cctv.com/CDM/schema/LDirectSendNotificationType/1.0")
        protected LDirectSendNotificationType lDirectSendNotificationRequest;
        @XmlElement(name = "LLiveProgramNotificationRequest", namespace = "http://cctv.com/CDM/schema/LLiveProgramNotificationType/1.0")
        protected LLiveProgramNotificationType lLiveProgramNotificationRequest;
        @XmlElement(name = "DirectSendNotificationRequest", namespace = "http://cctv.com/CDM/schema/DirectSendNotificationType/1.0")
        protected DirectSendNotificationType directSendNotificationRequest;
        @XmlElement(name = "LLiveProgramNotificationNewRequest", namespace = "http://cctv.com/CDM/schema/LLiveProgramNotificationNewType/1.0")
        protected LLiveProgramNotificationNewType lLiveProgramNotificationNewRequest;
        @XmlElement(name = "ProgPlayStatus", namespace = "http://cctv.com/PPM/schema/ProgPlayStatus/0.1")
        protected ProgPlayStatusType progPlayStatus;

        /**
         * 获取broadcastListAndChangeInfoRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link BroadcastListAndChangeInfoType }
         *     
         */
        public BroadcastListAndChangeInfoType getBroadcastListAndChangeInfoRequest() {
            return broadcastListAndChangeInfoRequest;
        }

        /**
         * 设置broadcastListAndChangeInfoRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link BroadcastListAndChangeInfoType }
         *     
         */
        public void setBroadcastListAndChangeInfoRequest(BroadcastListAndChangeInfoType value) {
            this.broadcastListAndChangeInfoRequest = value;
        }

        /**
         * 获取liveProgramNotificationRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link LiveProgramNotificationType }
         *     
         */
        public LiveProgramNotificationType getLiveProgramNotificationRequest() {
            return liveProgramNotificationRequest;
        }

        /**
         * 设置liveProgramNotificationRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link LiveProgramNotificationType }
         *     
         */
        public void setLiveProgramNotificationRequest(LiveProgramNotificationType value) {
            this.liveProgramNotificationRequest = value;
        }

        /**
         * 获取lDirectSendNotificationRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link LDirectSendNotificationType }
         *     
         */
        public LDirectSendNotificationType getLDirectSendNotificationRequest() {
            return lDirectSendNotificationRequest;
        }

        /**
         * 设置lDirectSendNotificationRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link LDirectSendNotificationType }
         *     
         */
        public void setLDirectSendNotificationRequest(LDirectSendNotificationType value) {
            this.lDirectSendNotificationRequest = value;
        }

        /**
         * 获取lLiveProgramNotificationRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link LLiveProgramNotificationType }
         *     
         */
        public LLiveProgramNotificationType getLLiveProgramNotificationRequest() {
            return lLiveProgramNotificationRequest;
        }

        /**
         * 设置lLiveProgramNotificationRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link LLiveProgramNotificationType }
         *     
         */
        public void setLLiveProgramNotificationRequest(LLiveProgramNotificationType value) {
            this.lLiveProgramNotificationRequest = value;
        }

        /**
         * 获取directSendNotificationRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link DirectSendNotificationType }
         *     
         */
        public DirectSendNotificationType getDirectSendNotificationRequest() {
            return directSendNotificationRequest;
        }

        /**
         * 设置directSendNotificationRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link DirectSendNotificationType }
         *     
         */
        public void setDirectSendNotificationRequest(DirectSendNotificationType value) {
            this.directSendNotificationRequest = value;
        }

        /**
         * 获取lLiveProgramNotificationNewRequest属性的值。
         * 
         * @return
         *     possible object is
         *     {@link LLiveProgramNotificationNewType }
         *     
         */
        public LLiveProgramNotificationNewType getLLiveProgramNotificationNewRequest() {
            return lLiveProgramNotificationNewRequest;
        }

        /**
         * 设置lLiveProgramNotificationNewRequest属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link LLiveProgramNotificationNewType }
         *     
         */
        public void setLLiveProgramNotificationNewRequest(LLiveProgramNotificationNewType value) {
            this.lLiveProgramNotificationNewRequest = value;
        }

        /**
         * 获取progPlayStatus属性的值。
         * 
         * @return
         *     possible object is
         *     {@link ProgPlayStatusType }
         *     
         */
        public ProgPlayStatusType getProgPlayStatus() {
            return progPlayStatus;
        }

        /**
         * 设置progPlayStatus属性的值。
         * 
         * @param value
         *     allowed object is
         *     {@link ProgPlayStatusType }
         *     
         */
        public void setProgPlayStatus(ProgPlayStatusType value) {
            this.progPlayStatus = value;
        }

    }

}
